package pe.com.bn.sach.service.impl;

import java.sql.Connection;

import java.util.List;


import pe.com.bn.sach.dao.ParametroDAO;
import pe.com.bn.sach.dao.ProductoDAO;
import pe.com.bn.sach.domain.Bnchf20Producto;
import pe.com.bn.sach.domain.Bnchf54ParamReqsDesgrav;
import pe.com.bn.sach.domain.Bnchf54ParametroProducto;
import pe.com.bn.sach.domain.Bnchf54ParamContrato;
import pe.com.bn.sach.domain.Bnchf54ParamDocumentTitular;
import pe.com.bn.sach.domain.Bnchf54ParamReqsFam;
import pe.com.bn.sach.domain.Bnchf54ParamReqsTit;
import pe.com.bn.sach.domain.Bnchf54ParamSitcLaboral;
import pe.com.bn.sach.domain.Bnchf54ParamTasaInteres;
import pe.com.bn.sach.domain.BnchfCatalogoProducto;
import pe.com.bn.sach.domain.BnchfDesgravamen;
import pe.com.bn.sach.domain.BnchfTarProd;
import pe.com.bn.sach.domain.BnchfTarifa;
import pe.com.bn.sach.domain.BnchfTasaInteres;

import pe.com.bn.sach.service.ParametroService;
import pe.com.bn.sach.domain.Bnchf02Cliente;
public class ParametroServiceImpl  implements ParametroService
  
{
	ParametroDAO  parametroDAO;
	ProductoDAO productoDAO;
	
	/**
	 * @param parametroDAO El parametroDAO a establecer.
	 */
	public void setParametroDAO(ParametroDAO parametroDAO) {
		this.parametroDAO = parametroDAO;
	}
	/**
	 * @param productoDAO El productoDAO a establecer.
	 */
	public void setProductoDAO(ProductoDAO productoDAO) {
		this.productoDAO = productoDAO;
	}
	
	
	public Bnchf20Producto obtenerProducto(Bnchf20Producto bnchf20Producto) throws Exception{
		return productoDAO.obtenerProducto(bnchf20Producto);
	}
	
	/**********************lista PARAMETRO CONTRATO**************************/
	
	public Bnchf54ParamContrato getparamContrato(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception
	{
		Bnchf54ParamContrato bnchf54ParamContrato;
		List l=  parametroDAO.listaparamContrato(bnchf54ParametroProducto);
		bnchf54ParamContrato = l.size() != 0 ?  (Bnchf54ParamContrato)l.get(0): new Bnchf54ParamContrato();
		return bnchf54ParamContrato;
	}
	
	/**********************lista PARAMETRO DOCUMENTO TITULAR**************************/
	public Bnchf54ParamDocumentTitular getparamDocumentitular(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception
	{
		Bnchf54ParamDocumentTitular bnchf54ParamDocumentTitular;
		List  l =  parametroDAO.listaparamDocumentitular(bnchf54ParametroProducto);
		bnchf54ParamDocumentTitular = l.size() > 0 ?  (Bnchf54ParamDocumentTitular)l.get(0): null;
		return bnchf54ParamDocumentTitular;
	}
	
	/**********************lista PARAMETRO requerimientos Familiar **************************/
	
	public Bnchf54ParamReqsFam getParamReqsFam(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception
	{
		Bnchf54ParamReqsFam bnchf54ParamReqsFam;
		List  l =  parametroDAO.listaParamReqsFam(bnchf54ParametroProducto);
		bnchf54ParamReqsFam = l.size() > 0 ? (Bnchf54ParamReqsFam)l.get(0): null;
		return bnchf54ParamReqsFam;
	}
	
	/**********************lista PARAMETRO requerimientos TITULAR  **************************/
	public Bnchf54ParamReqsTit getParamReqstit(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception
	{
		Bnchf54ParamReqsTit bnchf54ParamReqsTit;
		List  l =  parametroDAO.listaParamReqstit(bnchf54ParametroProducto);
		bnchf54ParamReqsTit = l.size() > 0 ?  (Bnchf54ParamReqsTit)l.get(0):null;
		return bnchf54ParamReqsTit;
	}
	
	/**********************lista PARAMETRO requerimientos TITULAR  **************************/
	
	public Bnchf54ParamSitcLaboral getParamSitclaboral(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception
	{
		Bnchf54ParamSitcLaboral bnchf54ParamSitcLaboral;
		List  l =  parametroDAO.listaParamSitclaboral(bnchf54ParametroProducto);
		bnchf54ParamSitcLaboral = l.size() != 0 ?  (Bnchf54ParamSitcLaboral)l.get(0): new Bnchf54ParamSitcLaboral();
		return bnchf54ParamSitcLaboral;
	}
	
	/**********************lista PARAMETRO requerimientos PRODUCTO  **************************/
	
	public Bnchf54ParametroProducto getParametroProcucto(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception
	{
		List  l =  parametroDAO.listaParametroProcucto(bnchf54ParametroProducto);
		bnchf54ParametroProducto = l.size() != 0 ?  (Bnchf54ParametroProducto)l.get(0): null;
		return bnchf54ParametroProducto;
	}
	
	/**********************lista Taza de Interes Efectiva Anual  **************************/
	
	public List listaParam_tasa_interes(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception
	{
		List  l =  parametroDAO.listaParamtasainteres(bnchf54ParametroProducto);
		return l;
	}
	
	/**********************lista PorcentajeDesgrav  **************************/
	
	public List listaparam_reqs_desgrav(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception
	{
		List  l =  parametroDAO.listaparam_reqs_desgrav(bnchf54ParametroProducto);
		return l;
	}
	
	public Bnchf54ParametroProducto getParametrosFinancieroOpen(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception{
		return parametroDAO.getParametrosFinancieroOpen(bnchf54ParametroProducto);
	}
	
	public void guardarParametroFinancieroOpen(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception{
		parametroDAO.guardarParametroFinancieroOpen(bnchf54ParametroProducto);
	}
	public void actualizaParametroFinancieroOpen(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception{
		parametroDAO.actualizaParametroFinancieroOpen(bnchf54ParametroProducto);
	}
	
	public BnchfCatalogoProducto obtenerCatalogoProducto(BnchfCatalogoProducto catalogoProducto, Connection cnx) throws Exception{
		return parametroDAO.obtenerCatalogoProducto(catalogoProducto, cnx);
	}
	public void guardarCatalogoProducto(BnchfCatalogoProducto catalogoProducto, Connection cnx) throws Exception{

		parametroDAO.guardarCatalogoProducto(catalogoProducto, cnx);
	}
	public void actualizarCatalogoProducto(BnchfCatalogoProducto catalogoProducto, Connection cnx) throws Exception{
		parametroDAO.actualizarCatalogoProducto(catalogoProducto, cnx);
	}
	public List obtenerTarifas(BnchfTarifa bnchfTarifa, Connection cnx) throws Exception{
		return parametroDAO.obtenerTarifas(bnchfTarifa, cnx);
	}
	
	public BnchfTarifa obtenerTarifa(BnchfTarifa bnchfTarifa, Connection cnx) throws Exception{
		return (BnchfTarifa)parametroDAO.obtenerTarifa(bnchfTarifa, cnx);
	}
	
	public BnchfTarProd obtenerTarifaProducto(BnchfTarProd bnchfTarProd, Connection cnx) throws Exception{
		return parametroDAO.obtenerTarifaProducto(bnchfTarProd, cnx);
	}
	public void insertTarifaProducto(BnchfTarProd bnchfTarProd, Connection cnx) throws Exception{
		parametroDAO.insertTarifaProducto(bnchfTarProd, cnx);
	}
	public void updateTarifaProducto(BnchfTarProd bnchfTarProd, Connection cnx) throws Exception{
		parametroDAO.updateTarifaProducto(bnchfTarProd, cnx);
	}
	
	public String EdadCliente(Bnchf02Cliente bnchf02Cliente) throws Exception
	{
		return parametroDAO.EdadCliente(bnchf02Cliente);
	
	}
	
	/******** CONSULTAS Y ACTUALIZACION DE PARAMETROS NO FINANCIEROS ***********/
	
	public Bnchf54ParamDocumentTitular getParamDocumentoTitular(Bnchf54ParamDocumentTitular bnchf54ParamDocumentTitular) throws Exception{
		return parametroDAO.getParamDocumentoTitular(bnchf54ParamDocumentTitular);
	}
	public Bnchf54ParamReqsFam getParamReqsFam(Bnchf54ParamReqsFam bnchf54ParamReqsFam) throws Exception{
		return parametroDAO.getParamReqsFam(bnchf54ParamReqsFam);
	}
	public Bnchf54ParamReqsTit getParamReqsTit(Bnchf54ParamReqsTit bnchf54ParamReqsTit) throws Exception{
		return parametroDAO.getParamReqsTit(bnchf54ParamReqsTit);
	}
	public void updateParamDocumentoTitular(Bnchf54ParamDocumentTitular bnchf54ParamDocumentTitular) throws Exception{
		parametroDAO.updateParamDocumentoTitular(bnchf54ParamDocumentTitular);
	}
	public void updateParamReqsFam(Bnchf54ParamReqsFam bnchf54ParamReqsFam) throws Exception{
		parametroDAO.updateParamReqsFam(bnchf54ParamReqsFam);
	}
	public void updateParamReqsTit(Bnchf54ParamReqsTit bnchf54ParamReqsTit) throws Exception{
		parametroDAO.updateParamReqsTit(bnchf54ParamReqsTit);
	}
	
	
	public void insertParamDocumentoTitular(Bnchf54ParamDocumentTitular bnchf54ParamDocumentTitular) throws Exception{
		parametroDAO.insertParamDocumentoTitular(bnchf54ParamDocumentTitular);
	}
	public void insertParamReqsFam(Bnchf54ParamReqsFam bnchf54ParamReqsFam) throws Exception{
		parametroDAO.insertParamReqsFam(bnchf54ParamReqsFam);
	}
	public void insertParamReqsTit(Bnchf54ParamReqsTit bnchf54ParamReqsTit) throws Exception{
		parametroDAO.insertParamReqsTit(bnchf54ParamReqsTit);
	}
	
	
	
	public List getTasaInteres(Bnchf54ParamTasaInteres bnchf54ParamTasaInteres) throws Exception{
		return parametroDAO.getTasaInteres(bnchf54ParamTasaInteres);
	}
	public List getTasaInteresDatacom(BnchfTasaInteres bnchfTasaInteres, Connection cnx) throws Exception{
		return parametroDAO.getTasaInteresDatacom(bnchfTasaInteres, cnx);
	}
	public List getHistorial(BnchfTasaInteres bnchfTasaInteres, Connection cnx) throws Exception{
		return parametroDAO.getHistorial(bnchfTasaInteres, cnx);
	}
	public void updateTasaInteres(Bnchf54ParamTasaInteres bnchf54ParamTasaInteres) throws Exception{
		parametroDAO.updateTasaInteres(bnchf54ParamTasaInteres);
	}
	
	public Bnchf54ParamTasaInteres getTasaInteresxIdPlazo(Bnchf54ParamTasaInteres bnchf54ParamTasaInteres) throws Exception{
		return parametroDAO.getTasaInteresxIdPlazo(bnchf54ParamTasaInteres);
	}
	public void insertTasaInteres(Bnchf54ParamTasaInteres bnchf54ParamTasaInteres) throws Exception{
		parametroDAO.insertTasaInteres(bnchf54ParamTasaInteres);
	}
	public void insertTasaDatacom(BnchfTasaInteres bnchfTasaInteres, Connection cnx) throws Exception{
		parametroDAO.insertTasaDatacom(bnchfTasaInteres, cnx);
	}
	public void updateTasaDatacom(BnchfTasaInteres bnchfTasaInteres, Connection cnx) throws Exception{
		parametroDAO.updateTasaDatacom(bnchfTasaInteres, cnx);
	}
	public String maxTimestampTasaInteres(BnchfTasaInteres bnchfTasaInteres, Connection cnx) throws Exception{
		return parametroDAO.maxTimestampTasaInteres(bnchfTasaInteres, cnx);
	}
	public BnchfTasaInteres existeTasaInteres(BnchfTasaInteres bnchfTasaInteres, Connection cnx) throws Exception{
		return parametroDAO.existeTasaInteres(bnchfTasaInteres, cnx);
	}
	
	
	public List getDesgravamen(Bnchf54ParamReqsDesgrav bnchf54ParamReqsDesgrav) throws Exception{
		return parametroDAO.getDesgravamen(bnchf54ParamReqsDesgrav);
	}
	
	public List getDesgravamenDatacom(BnchfDesgravamen bnchfDesgravamen, Connection cnx) throws Exception{
		return parametroDAO.getDesgravamenDatacom(bnchfDesgravamen, cnx);
	}
	public List getHistorial(BnchfDesgravamen bnchfDesgravamen, Connection cnx) throws Exception{
		return parametroDAO.getHistorial(bnchfDesgravamen, cnx);
	}
	public String maxTimestampDesgravamen(BnchfDesgravamen bnchfDesgravamen, Connection cnx) throws Exception{
		return parametroDAO.maxTimestampDesgravamen(bnchfDesgravamen, cnx);
	}
	public BnchfDesgravamen existeDesgravamen(BnchfDesgravamen bnchfDesgravamen, Connection cnx) throws Exception{
		return parametroDAO.existeDesgravamen(bnchfDesgravamen, cnx);
	}
	public void updateDesgravamen(Bnchf54ParamReqsDesgrav bnchf54ParamReqsDesgrav) throws Exception{
		parametroDAO.updateDesgravamen(bnchf54ParamReqsDesgrav);
	}
	public Bnchf54ParamReqsDesgrav getDesgravamenXId(Bnchf54ParamReqsDesgrav bnchf54ParamReqsDesgrav) throws Exception{
		return parametroDAO.getDesgravamenXId(bnchf54ParamReqsDesgrav);
	}
	public void insertDesgravamen(Bnchf54ParamReqsDesgrav bnchf54ParamReqsDesgrav) throws Exception{
		parametroDAO.insertDesgravamen(bnchf54ParamReqsDesgrav);
	}
	
	public void insertDesgravamenDatacom(BnchfDesgravamen bnchfDesgravamen, Connection cnx) throws Exception{
		parametroDAO.insertDesgravamenDatacom(bnchfDesgravamen, cnx);
	}
	public void updateDesgravamenDatacom(BnchfDesgravamen bnchfDesgravamen, Connection cnx) throws Exception{
		parametroDAO.updateDesgravamenDatacom(bnchfDesgravamen, cnx);
	}
	
}
